package cn.zzq.shop.goods.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;

import cn.zzq.shop.common.util.PageInfoUtil;
import cn.zzq.shop.goods.pojo.AGoods;
import cn.zzq.shop.goods.pojo.AGoodsBrand;
import cn.zzq.shop.goods.pojo.AGoodsCate;

/**
 * 商品的接口
 * 
 * @author wangshSxt
 *
 */
public interface IGoodsService
{
	/*---- 品牌操作开始 ----*/
	/**
	 * 保存一条品牌
	 * @param goodsBrand	保存的对象
	 * @return	json:{"code":"0","info":"成功","data":{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsBrandService(AGoodsBrand goodsBrand);
	
	/**
	 * 保存一条品牌
	 * @param goodsBrand	保存的对象
	 * @param paramsMap 上传文件所需要的条件
	 * @return	json:{"code":"0","info":"成功","data":{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsBrandService(AGoodsBrand goodsBrand,Map<String, Object> paramsMap);
	
	/**
	 * 更新一条品牌
	 * @param goodsBrand
	 * @return
	 */
	JSONObject updateOneGoodsBrandService(AGoodsBrand goodsBrand);
	
	/**
	 * 更新一条品牌
	 * @param goodsBrand
	 * @param paramsMap
	 * @return
	 */
	JSONObject updateOneGoodsBrandService(AGoodsBrand goodsBrand, Map<String, Object> paramsMap);
	
	/**
	 * 删除一条品牌
	 * @param goodsBrand
	 * @return
	 */
	JSONObject deleteOneGoodsBrandService(AGoodsBrand goodsBrand);
	
	/**
	 * 查询一条品牌
	 * @param condMap	查询条件
	 * @return	返回品牌
	 */
	AGoodsBrand findOneGoodsBrandService(Map<String, Object> condMap);
	
	/**
	 * 查询多条品牌
	 * @param pageInfoUtil	分页对象:如果为null,不分页,如果不为空,分页
	 * @param condMap	查询条件
	 * @return	返回多条记录
	 */
	Map<String, Object> findCondListGoodsBrandService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	/*---- 品牌操作结束 ----*/
	
	/*---- 商品分类操作开始 ----*/
	/**
	 * 保存一条商品分类
	 * @param goodsCate	保存的对象
	 * @return	json:{"code":"0","info":"成功","data":{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsCateService(AGoodsCate goodsCate);
	
	/**
	 * 更新一条商品分类
	 * @param goodsCate
	 * @return
	 */
	JSONObject updateOneGoodsCateService(AGoodsCate goodsCate);
	
	/**
	 * 删除一条商品分类
	 * @param goodsCate
	 * @return
	 */
	JSONObject deleteOneGoodsCateService(AGoodsCate goodsCate);
	
	/**
	 * 查询一条商品分类
	 * @param condMap	查询条件
	 * @return	返回商品分类
	 */
	AGoodsCate findOneGoodsCateService(Map<String, Object> condMap);
	
	/**
	 * 查询多条商品分类
	 * @param pageInfoUtil	分页对象:如果为null,不分页,如果不为空,分页
	 * @param condMap	查询条件
	 * @return	返回多条记录
	 */
	Map<String, Object> findCondListGoodsCateService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	
	/**
	 * 查询树形结构的平板格式
	 */
	List<AGoodsCate> findTreeListCateService();
	
	/*---- 商品分类操作结束 ----*/
	
	/*---- 商品操作开始 ----*/
	/**
	 * 保存一条商品
	 * @param goods	保存的对象
	 * @return	json:{"code":"0","info":"成功","data":{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsService(AGoods goods);
	
	/**
	 * 保存一条商品
	 * @param goods	保存的对象
	 * @return	json:{"code":"0","info":"成功","data":{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsService(AGoods goods,Map<String, Object> paramsMap);
	
	/**
	 * 更新一条商品
	 * @param goods
	 * @return
	 */
	JSONObject updateOneGoodsService(AGoods goods);
	
	/**
	 * 删除一条商品
	 * @param goods
	 * @return
	 */
	JSONObject deleteOneGoodsService(AGoods goods);
	
	/**
	 * 查询一条商品
	 * @param condMap	查询条件
	 * @return	返回商品
	 */
	AGoods findOneGoodsService(Map<String, Object> condMap);
	
	/**
	 * 查询多条商品
	 * @param pageInfoUtil	分页对象:如果为null,不分页,如果不为空,分页
	 * @param condMap	查询条件
	 * @return	返回多条记录
	 */
	Map<String, Object> findCondListGoodsService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	
	/*---- 商品操作结束 ----*/
}
